package com.san.hkhospital.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * ClassName:SurDoExample
 * PackageName:com.san.hkhospital.entity
 * Description:
 *
 * @Author:yy
 * @CreatedAt:2024/11/13 19:26
 * 
 */
 
 
public class SurDoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public SurDoExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andSdIdIsNull() {
            addCriterion("sd_id is null");
            return (Criteria) this;
        }

        public Criteria andSdIdIsNotNull() {
            addCriterion("sd_id is not null");
            return (Criteria) this;
        }

        public Criteria andSdIdEqualTo(Integer value) {
            addCriterion("sd_id =", value, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdIdNotEqualTo(Integer value) {
            addCriterion("sd_id <>", value, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdIdGreaterThan(Integer value) {
            addCriterion("sd_id >", value, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("sd_id >=", value, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdIdLessThan(Integer value) {
            addCriterion("sd_id <", value, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdIdLessThanOrEqualTo(Integer value) {
            addCriterion("sd_id <=", value, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdIdIn(List<Integer> values) {
            addCriterion("sd_id in", values, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdIdNotIn(List<Integer> values) {
            addCriterion("sd_id not in", values, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdIdBetween(Integer value1, Integer value2) {
            addCriterion("sd_id between", value1, value2, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdIdNotBetween(Integer value1, Integer value2) {
            addCriterion("sd_id not between", value1, value2, "sdId");
            return (Criteria) this;
        }

        public Criteria andSdTimeIsNull() {
            addCriterion("sd_time is null");
            return (Criteria) this;
        }

        public Criteria andSdTimeIsNotNull() {
            addCriterion("sd_time is not null");
            return (Criteria) this;
        }

        public Criteria andSdTimeEqualTo(Date value) {
            addCriterion("sd_time =", value, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdTimeNotEqualTo(Date value) {
            addCriterion("sd_time <>", value, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdTimeGreaterThan(Date value) {
            addCriterion("sd_time >", value, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("sd_time >=", value, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdTimeLessThan(Date value) {
            addCriterion("sd_time <", value, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdTimeLessThanOrEqualTo(Date value) {
            addCriterion("sd_time <=", value, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdTimeIn(List<Date> values) {
            addCriterion("sd_time in", values, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdTimeNotIn(List<Date> values) {
            addCriterion("sd_time not in", values, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdTimeBetween(Date value1, Date value2) {
            addCriterion("sd_time between", value1, value2, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdTimeNotBetween(Date value1, Date value2) {
            addCriterion("sd_time not between", value1, value2, "sdTime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeIsNull() {
            addCriterion("sd_subtime is null");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeIsNotNull() {
            addCriterion("sd_subtime is not null");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeEqualTo(Date value) {
            addCriterion("sd_subtime =", value, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeNotEqualTo(Date value) {
            addCriterion("sd_subtime <>", value, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeGreaterThan(Date value) {
            addCriterion("sd_subtime >", value, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("sd_subtime >=", value, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeLessThan(Date value) {
            addCriterion("sd_subtime <", value, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeLessThanOrEqualTo(Date value) {
            addCriterion("sd_subtime <=", value, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeIn(List<Date> values) {
            addCriterion("sd_subtime in", values, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeNotIn(List<Date> values) {
            addCriterion("sd_subtime not in", values, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeBetween(Date value1, Date value2) {
            addCriterion("sd_subtime between", value1, value2, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdSubtimeNotBetween(Date value1, Date value2) {
            addCriterion("sd_subtime not between", value1, value2, "sdSubtime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeIsNull() {
            addCriterion("sd_starttime is null");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeIsNotNull() {
            addCriterion("sd_starttime is not null");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeEqualTo(Date value) {
            addCriterion("sd_starttime =", value, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeNotEqualTo(Date value) {
            addCriterion("sd_starttime <>", value, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeGreaterThan(Date value) {
            addCriterion("sd_starttime >", value, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeGreaterThanOrEqualTo(Date value) {
            addCriterion("sd_starttime >=", value, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeLessThan(Date value) {
            addCriterion("sd_starttime <", value, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeLessThanOrEqualTo(Date value) {
            addCriterion("sd_starttime <=", value, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeIn(List<Date> values) {
            addCriterion("sd_starttime in", values, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeNotIn(List<Date> values) {
            addCriterion("sd_starttime not in", values, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeBetween(Date value1, Date value2) {
            addCriterion("sd_starttime between", value1, value2, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdStarttimeNotBetween(Date value1, Date value2) {
            addCriterion("sd_starttime not between", value1, value2, "sdStarttime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeIsNull() {
            addCriterion("sd_endtime is null");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeIsNotNull() {
            addCriterion("sd_endtime is not null");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeEqualTo(Date value) {
            addCriterion("sd_endtime =", value, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeNotEqualTo(Date value) {
            addCriterion("sd_endtime <>", value, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeGreaterThan(Date value) {
            addCriterion("sd_endtime >", value, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("sd_endtime >=", value, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeLessThan(Date value) {
            addCriterion("sd_endtime <", value, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeLessThanOrEqualTo(Date value) {
            addCriterion("sd_endtime <=", value, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeIn(List<Date> values) {
            addCriterion("sd_endtime in", values, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeNotIn(List<Date> values) {
            addCriterion("sd_endtime not in", values, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeBetween(Date value1, Date value2) {
            addCriterion("sd_endtime between", value1, value2, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andSdEndtimeNotBetween(Date value1, Date value2) {
            addCriterion("sd_endtime not between", value1, value2, "sdEndtime");
            return (Criteria) this;
        }

        public Criteria andMoneyIsNull() {
            addCriterion("money is null");
            return (Criteria) this;
        }

        public Criteria andMoneyIsNotNull() {
            addCriterion("money is not null");
            return (Criteria) this;
        }

        public Criteria andMoneyEqualTo(Long value) {
            addCriterion("money =", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyNotEqualTo(Long value) {
            addCriterion("money <>", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyGreaterThan(Long value) {
            addCriterion("money >", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyGreaterThanOrEqualTo(Long value) {
            addCriterion("money >=", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyLessThan(Long value) {
            addCriterion("money <", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyLessThanOrEqualTo(Long value) {
            addCriterion("money <=", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyIn(List<Long> values) {
            addCriterion("money in", values, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyNotIn(List<Long> values) {
            addCriterion("money not in", values, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyBetween(Long value1, Long value2) {
            addCriterion("money between", value1, value2, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyNotBetween(Long value1, Long value2) {
            addCriterion("money not between", value1, value2, "money");
            return (Criteria) this;
        }

        public Criteria andHpdIdIsNull() {
            addCriterion("hpd_id is null");
            return (Criteria) this;
        }

        public Criteria andHpdIdIsNotNull() {
            addCriterion("hpd_id is not null");
            return (Criteria) this;
        }

        public Criteria andHpdIdEqualTo(Integer value) {
            addCriterion("hpd_id =", value, "hpdId");
            return (Criteria) this;
        }

        public Criteria andHpdIdNotEqualTo(Integer value) {
            addCriterion("hpd_id <>", value, "hpdId");
            return (Criteria) this;
        }

        public Criteria andHpdIdGreaterThan(Integer value) {
            addCriterion("hpd_id >", value, "hpdId");
            return (Criteria) this;
        }

        public Criteria andHpdIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("hpd_id >=", value, "hpdId");
            return (Criteria) this;
        }

        public Criteria andHpdIdLessThan(Integer value) {
            addCriterion("hpd_id <", value, "hpdId");
            return (Criteria) this;
        }

        public Criteria andHpdIdLessThanOrEqualTo(Integer value) {
            addCriterion("hpd_id <=", value, "hpdId");
            return (Criteria) this;
        }

        public Criteria andHpdIdIn(List<Integer> values) {
            addCriterion("hpd_id in", values, "hpdId");
            return (Criteria) this;
        }

        public Criteria andHpdIdNotIn(List<Integer> values) {
            addCriterion("hpd_id not in", values, "hpdId");
            return (Criteria) this;
        }

        public Criteria andHpdIdBetween(Integer value1, Integer value2) {
            addCriterion("hpd_id between", value1, value2, "hpdId");
            return (Criteria) this;
        }

        public Criteria andHpdIdNotBetween(Integer value1, Integer value2) {
            addCriterion("hpd_id not between", value1, value2, "hpdId");
            return (Criteria) this;
        }

        public Criteria andSurIdIsNull() {
            addCriterion("sur_id is null");
            return (Criteria) this;
        }

        public Criteria andSurIdIsNotNull() {
            addCriterion("sur_id is not null");
            return (Criteria) this;
        }

        public Criteria andSurIdEqualTo(Integer value) {
            addCriterion("sur_id =", value, "surId");
            return (Criteria) this;
        }

        public Criteria andSurIdNotEqualTo(Integer value) {
            addCriterion("sur_id <>", value, "surId");
            return (Criteria) this;
        }

        public Criteria andSurIdGreaterThan(Integer value) {
            addCriterion("sur_id >", value, "surId");
            return (Criteria) this;
        }

        public Criteria andSurIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("sur_id >=", value, "surId");
            return (Criteria) this;
        }

        public Criteria andSurIdLessThan(Integer value) {
            addCriterion("sur_id <", value, "surId");
            return (Criteria) this;
        }

        public Criteria andSurIdLessThanOrEqualTo(Integer value) {
            addCriterion("sur_id <=", value, "surId");
            return (Criteria) this;
        }

        public Criteria andSurIdIn(List<Integer> values) {
            addCriterion("sur_id in", values, "surId");
            return (Criteria) this;
        }

        public Criteria andSurIdNotIn(List<Integer> values) {
            addCriterion("sur_id not in", values, "surId");
            return (Criteria) this;
        }

        public Criteria andSurIdBetween(Integer value1, Integer value2) {
            addCriterion("sur_id between", value1, value2, "surId");
            return (Criteria) this;
        }

        public Criteria andSurIdNotBetween(Integer value1, Integer value2) {
            addCriterion("sur_id not between", value1, value2, "surId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}